package com.newstore.database;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

/**
 * Permet de gérer les accès à la base de données
 * Il faut instancier l'AccessDatabase pour commencer. Après il faut ouvrir la DB avec le booléen pour définir si l'on va écrire sur la DB
 * Ensuite il faut instancier un des objets pour lequel on veut faire des requêtes avec la SQLiteDatabase
 * Puis tu utilises les méthodes de ces objets pour avoir du fun.
 * @author Guillaume
 * @version 1.0
 */
public class AccessDatabase
{
	
	private static final int VERSION_DATABASE = 3;
	private static final String NAME_DATABASE = "database.db";

	// NS == Nicolas Sarkozy <3 Capitaliste de mon coeur ! (Guillaume DIEGO r�el fan de Nicolas)
	private DatabaseNewstore databaseNS;
	private SQLiteDatabase databaseQueries;
	
	public AccessDatabase(Context context)
	{
		this.databaseNS = new DatabaseNewstore(context, NAME_DATABASE, null, VERSION_DATABASE);
	}
	
	/**
	 * Le mode d'ouverture de la base de données doit se faire en fonction des requêtes que l'on veut faire
	 * @param writableDatabase : Booléen qui permet de définir le type d'ouverture de la base de données, soit en écriture soit en lecture
	 * @return La base de données
	 */
	public SQLiteDatabase open(boolean writableDatabase)
	{
		if (writableDatabase)
			this.databaseQueries = databaseNS.getWritableDatabase();
		else
			this.databaseQueries = databaseNS.getReadableDatabase();
		
		return this.databaseQueries;
	}
	
	/**
	 * Permet de fermer l'accès à la base de données
	 */
	public void close()
	{
		this.databaseQueries.close();
	}
	
	/**
	 * Accesseur de la base de données
	 */
	public SQLiteDatabase getDatabase()
	{
		return this.databaseQueries;
	}
}
